<%--
	fileName      : itemmgmt.jsp
	author        : kfzx-renhm
	createDate    : 2010-5-31  下午01:52:44
	lastModifier  : kfzx-renhm
	lastModifyDate: 2010-7-3  上午09:00:00
	description   : 功能管理模块
--%>
<%@ page language="java" contentType="text/html; charset=utf-8"  pageEncoding="utf-8" %>
<%@ taglib uri="ctp-tag" prefix="ctp" %>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <title><ctp:label key="itemmgmt.title.label"/></title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<ctp:include items="link,borderlayout,checkboxgroup,checkbox,radiogroup,radio,groupbox,button,message_ex,validator,label,textfield,combobox,textarea,form,gridlayout,menus,panel,toolbar,grid,datepicker"/>

		<script type='text/javascript' kind='variant'>		  
		     //================================UI变量定义片段============================================================
             var borderlayout;//页面框架布局器
             var itemmgmtToolbar;//工具栏
             var itemmgmtGrid;//功能列表Grid
             var itemmgmtPanel;//功能信息所在的panel
             var itemmgmtForm;//功能信息表单

			 //表单内容部分
			 var detailLayout;//栅格布局（上部）
			 var detailLayout1;//栅格布局（下部）
			 var itemId;//功能ID
			 var itemName;//功能名称
			 var itemStatus;//功能状态
			 var itemLabel;//功能显示文字
			 var itemType;//类型
			 var itemURL;//地址
			 var itemDes;//功能描述
			 var urlBtn;//地址构造器按钮
             var itemLvlRbox;//可用级别或机构（单选按钮组）
             var itemLvlRbox1;//功能可用级别
             var itemLvlRbox2;//仅本机构使用
             var itemLvl;//功能可用级别复选按钮
             var itemBranch;//仅本机构使用的机构代码输入框
             var itemBranchBtn;//仅本机构使用的机构列表选中框弹出按钮     
        </script>
        <script type='text/javascript' kind='event'>
      		//================================事件函数定义片段============================================================
      		//调试开关
      		//ctp.core.log.lvl = ctp.core.loglvl.obj;
      		var itemListUrl='<ctp:url href="itemmgmt.flowc" flowActionName="queryitemlistop" params="language=\'zh_CN\';begNum=1;fetchNum=100;" />';
      		var flag=0;
          	function setValue(){
          		if(flag=='new'){
          			item_add();
          			return;
              	}
                var _data=itemmgmtGrid.getSelectedData()[0];
                if(!itemId.isReadOnly()){
                	itemId.setValue(_data.itemId);
                }
                itemName.setValue(_data.itemName);
                itemStatus.setValue(_data.itemStatus);
                itemURL.setValue(_data.itemUrl);
                itemType.setValue(_data.itemType);
                itemLabel.setValue(_data.itemLabel);
                itemDes.setValue(_data.itemDesc);
                itemmgmtToolbar.setDisable("_toolbar_button_modify",false);      
                itemmgmtToolbar.setDisable("_toolbar_button_del",false);   
          
              	//选中可使用级别                    
                if(_data.itemBranchId==""){                    	
                    var val=[];
                    itemLvl.setGroupChecked(false);    
                    itemLvlRbox.setValue("0");   
					itemBranch.setValue("");
					itemBranch.setDisable(true);                   	
                	for(var i=0;i<_data.itemLevel.length;i++){
                    	var _tmp=_data.itemLevel.substr(i,1);
                    	if(_tmp=="1"){
                    		val.push(i+1);
                    	}
                	}
                	if(val.length>0){
                		val=val.join(",");
                		itemLvl.setValue(val);
                	}
					if(flag=="mod"){
						itemLvl.setDisable(false);
					}                    	
                }
                //仅本机构使用
                else{                 
                	itemLvlRbox.setValue("1");
					if (flag == "mod") {
						itemBranch.setDisable(false);
						itemLvl.setDisable(true);
					}
                	itemBranch.setValue(_data.itemBranchId);                	                 
                }
          	}
      		//提交按钮函数
      		function itemmgmtFormSubmit(){
          		if(flag=='new'){
          			if(!itemId.getValue().startsWith("I")){
      					itemId.setValue("I"+itemId.getValue());
          			}
          		}
          		
          		if(itemLvl.isDisable() || itemLvl.getCheckedCount()==0){
          			itemLvl.setGroupChecked(false);
          			itemLvl.setValue("");
          		}
          		
          		if(itemBranch.isDisable()){
          			itemBranch.setValue("");
          		}
          		
      			itemmgmtForm.submit();
          		
      		}
      		//重置按钮函数
			/*function itemmgmtSetNull(){
				setValue();
			}*/
      		//可使用级别或机构单选按钮组的更改事件
      		function lvlChange(){
				if(!itemLvlRbox.isDisable()){
	            	if(itemLvlRbox.isItemChecked('itemLvlRbox2')){
	            		itemBranch.setDisable(false);
	            		itemBranchBtn.setDisable(false);
	            		itemLvl.setDisable(true);
	            	}else{
	                	if(itemLvlRbox.isItemChecked('itemLvlRbox1')){
	                		itemBranch.setDisable(true);
	                		itemBranchBtn.setDisable(true);
	                		itemLvl.setDisable(false);
	                	}
	            	}
				}
        	}
        	
        	//界面渲染完成后执行
            function inited(){
                //初始状态下修改和删除按钮不可用，直到选中了一条记录
            	itemmgmtToolbar.setDisable("_toolbar_button_modify",true);      
                itemmgmtToolbar.setDisable("_toolbar_button_del",true);     
                
              	//表单初始只读
            	itemmgmtForm.setDisableAll(true);

            	//可使用级别或机构单选框组
            	itemLvlRbox.addGroupItem([itemLvlRbox1,itemLvlRbox2]);
            	//绑定单选按钮组的更改事件
				itemLvlRbox.onChange(lvlChange);

				//构造可使用级别复选按钮组
            	var level="<ctp:out name='flowCtx.maxBranchLevel'/>";
                if(level && level>1){
                    var lvlItems=[];
                    for (var i=1;i<level;i++){
                    	lvlItems.push({id:'lvl'+i,label:'<ctp:label key="itemmgmt.subbranch.label"/>:'+i,value:i+1});//下属级别
                    }
                    itemLvl.addGroupItem(lvlItems);
                }

            	//绑定列表的行选中事件
                itemmgmtGrid.selectedFn(function(){
                    flag=0;
                	itemmgmtForm.reset();
                	itemmgmtPanel.setTitle('<ctp:label key="itemmgmt.detail.title.label"/>');//功能节点详情
                	itemmgmtForm.setDisableAll(true);
                	setValue();
                });
               
            }


        	//新增功能
        	function item_add(){
            	flag='new';
        		itemmgmtPanel.setTitle('<ctp:label key="itemmgmt.add.title.label"/>');//功能节点新增
        												
        		itemmgmtForm.reset();
        		itemmgmtForm.setDisableAll(false);
        		itemBranch.setDisable(true);
        		itemBranchBtn.setDisable(true);
        		itemLvlRbox.setValue("0",true);
        		itemStatus.setValue("1",true);
        		itemType.setValue("2",true);
        		document.itemForm.flowActionName.value="newItem"; 
        		
        	}

        	//删除功能
        	function item_del(){
        		if(itemmgmtGrid.getSelectedRowId().length==0){
                	ctpMSB.alert({title:'<ctp:label key="itemmgmt.msgBox.title"/>',message:'<ctp:label key="itemmgmt.alert.notselected"/>'});//请先选中一个功能节点
                	return;
            	}
        		ctpMSB.confirm({
					title:'<ctp:label key="itemmgmt.msgBox.title"/>',
					message:'<ctp:label key="itemmgmt.del.confirm"/>',//即将删除选中的功能结点,是否继续?
					handler:function(tp){
						if(tp=="ok"){
							var _id=itemmgmtGrid.getSelectedRowId()[0];
							ctp.data.getJSONA({
								url:'<ctp:url href="itemmgmt.flowc" />',
								reqData:{
										"flowActionName":"deleteItem",
										"itemId":_id 
									},
								success:function(data){
											if(data && data.retCode=="0"){
												itemmgmtForm.reset();
												ctpMSB.alert({title:'<ctp:label key="itemmgmt.msgBox.title"/>',message:'<ctp:label key="itemmgmt.del.alert.success"/>'});
												var _page=itemmgmtGrid.footer.getCurPage();
												itemmgmtGrid.onLoad(function(){
													itemmgmtGrid.gotoPage(_page);
												});
												itemmgmtGrid.loadData(itemListUrl);
												itemmgmtToolbar.setDisable("_toolbar_button_modify",true);      
												itemmgmtToolbar.setDisable("_toolbar_button_del",true); 
												}
											else{
												var _msg='<ctp:label key="itemmgmt.del.alert.error"/>';
												if(data){_msg=_msg+',<ctp:label key="itemmgmt.errorCode"/>'+data.retCode}
												ctpMSB.alert({title:'<ctp:label key="itemmgmt.msgBox.title"/>',message:_msg});
											}
										}
							});
						}
						if(tp=="cancle"){
							return;
						}
        			}
        		});
            }

        	//修改功能
        	function item_edit(){
            	if(itemmgmtGrid.getSelectedRowId().length==0){
                	ctpMSB.alert({title:'<ctp:label key="itemmgmt.msgBox.title"/>',message:'<ctp:label key="itemmgmt.alert.notselected"/>'});//先选中一个功能节点再进行操作
                	return;
            	}
            	flag='mod';
            	itemmgmtPanel.setTitle('<ctp:label key="itemmgmt.edit.title.label"/>');//功能节点修改
        		itemmgmtForm.setDisableAll(false);
        		lvlChange();
        		itemmgmtForm.getObj("itemId").setDisable(true);
        		setValue();
        		document.itemForm.flowActionName.value="updateItemInfo"; 
        	}

        	//构造url按钮
			function urlBtn_click(){
				var srcPath = '<ctp:url href="itemmgmt.flowc" flowActionName="itemmgmtEditor"/>';
				ctpMSB.win({
		            message   :srcPath,
		            width     :550,
		            height    :400,
		            title     :'<ctp:label key="itemmgmt.URLEditor.title"/>',//URL 构造器
		            handler   :urlSelect_handler,
		            maxBtn    :true,
		            minBtn    :true,
		            iframe    :true
		        });
				
			}
			function urlSelect_handler(retObj){
				if(retObj.flag == 'do') //弹出页面自定义
		        {        
		        ctpMSB.close();
		        itemmgmtForm.getObj("url").setValue(retObj.url);
		        }
		       if(retObj == 'close')   //默认点击关闭按钮回带'close'
		        {
		        ctpMSB.close();    
		        }
			}
			function itemBranchBtn_click(){//选择机构的方法
				 var srcPath = '<ctp:url href="menumgmt.flowc" flowActionName="menumgmtBranchSelOp"/>&date=' + new Date();
		            ctpMSB.win({
		            message   :srcPath,
		            width     :700,
		            height    :400,
		            title     :'<ctp:label key="query_result"/>',
		            handler   :itemBranchSelect_handler,
		            maxBtn    :true,
		            minBtn    :true,
		            iframe    :true
		            });    
			}

			function itemBranchSelect_handler(retObj){
                
		        if(retObj.flag == 'do') //弹出页面自定义
		        {        
		        ctpMSB.close();
		        itemmgmtForm.getObj('itemBranchId').setValue(retObj.branchTree.id);   
		        }
		        
		       if(retObj == 'close')   //默认点击关闭按钮回带'close'
		        {
		        ctpMSB.close();    
		        }
			}

			function  itemNameQry(){
					if(itemmgmtToolbar.getValue(0,"right")==""){
    				ctpMSB.error({title:'<ctp:label key="itemmgmt.result_notice"/>',message:'<ctp:label key="itemmgmt.input_item_name"/>'});//请输入你要查询的扩展属性名称！
        		}else{
        			var qryNameUrl='<ctp:url href="itemmgmt.flowc" flowActionName="qryname" params="Language=sessCtx.Language"/>'+'&name='+encodeURIComponent(itemmgmtToolbar.getValue(0,"right"));
        			itemmgmtGrid.loadData(qryNameUrl);	
        			itemmgmtToolbar.setDisable("_toolbar_button_modify",true);      
        			itemmgmtToolbar.setDisable("_toolbar_button_del",true); 
        		}
			}


      		
      	</script>
      	<script type='text/javascript' kind='notUi'>
            //================================非UI组件定义片段==========================================================
            var itemmgmtValidator = new ctp.validator({id:"itemmgmtFormValidator"});//验证框架
        </script>
		<script type='text/javascript' kind='ui'>
		    //================================UI组件定义片段============================================================
		    
		    /**
             * 创建UI组件
             * @version	 1.0
             * @since	 1.0
             * @author	kfzx-renhm           
             */
            function initUI(){
                
                //创建工具栏
				itemmgmtToolbar = new ctp.ui.toolbar({
					id: "itemmgmtToolbar",
					leftItems: [{
						id:'_toolbar_button_new',
						type: 'button',
						text: '<ctp:label key="itemmgmt.toolbar.btn.add.label"/>',//新增
						icon: 'add',
						onClick: item_add
					}, '-', {
						id:'_toolbar_button_modify',
						type: 'button',
						text: '<ctp:label key="itemmgmt.toolbar.btn.edit.label"/>',//修改
						icon: 'edit',
						onClick: item_edit
					}, '-', {
						id:"_toolbar_button_del",
						type: 'button',
						text: '<ctp:label key="itemmgmt.toolbar.btn.del.label"/>',//删除
						icon: 'delete',
						onClick: item_del
					}],
					rightItems :[{
				        id:"_toolbar_textfield_search",
                        type : 'textfield',
				        disable : false,
                        text : '<ctp:label key="itemmgmt.toolbar.btn.qryname"/>',//属性名称搜索：
                        object: new ctp.ui.textfield({
                                   id: '_toolbar_textfield_search',
                                   width: '100px'
                                })
				       },{
				          id:"_toolbar_button_search",
                          type : 'button',                                             
                          icon : 'search',
                          disable : false,
                          onClick : itemNameQry
				       }]
				});

				//创建功能列表数据表格
                itemmgmtGrid = new ctp.ui.grid({
                    id: "itemmgmtGrid",
                    height:"100%",
                    toolbar:itemmgmtToolbar,
                    toolbarPos:'innertop',
                    header: {
                    title:        
                    [[{text:'<ctp:label key="itemmgmt.grid.colhead.select.label"/>'},//选择
                      {text: '<ctp:label key="itemmgmt.grid.colhead.indexnum.label"/>'}, //序号
                      {text: '<ctp:label key="itemmgmt.id.label"/>'},//ID
                      {text: '<ctp:label key="itemmgmt.name.label"/>'}, //功能名称
                      {text: '<ctp:label key="itemmgmt.text.label"/>'}, //显示文字
                      {text: '<ctp:label key="itemmgmt.status.label"/>'}//状态
                    ]],
                    rowIdFieldName:"itemId",
                    attr: [{colType:"radiobox"},
                    	   {colType:"seqnum"},
                           {fieldName: "itemId"},
                           {fieldName: "itemName"},
                           {fieldName: "itemLabel"},
						   {fieldName:"itemStatusText"}						
						]
                },

                    title: '<ctp:label key="itemmgmt.grid.title.label"/>',//功能列表
					url:itemListUrl,
					footer:{auto:true}
    					//,cacheRows:100,cachePages:10}
                });
				
				itemId=new ctp.ui.textfield({id: 'itemId',width:'100%',validate: 'rules[required,letterOrNumber,length[1,8]]'});
				itemName=new ctp.ui.textfield({id: 'itemName',width:'100%',validate: 'rules[required,length[1,50]]'});
				itemStatus=new ctp.ui.radiogroup({id:'status',items:[{id:'stat1',label:'<ctp:label key="itemmgmt.active.label"/>',value:"1"},{id:'stat2',label:'<ctp:label key="itemmgmt.freeze.label"/>',value:"0"}],display:"cols",width:"100%"});//激活、冻结
				itemLabel=new ctp.ui.textfield({id: 'label',width:'100%',validate: 'rules[required,length[1,40]]'});
				itemType=new ctp.ui.radiogroup({id:'itemType',items:[{id:'type1',label:'opg',value:"2"},{id:'type2',label:'jsp',value:"1"}],display:"cols",width:"100%",validate: 'rules[required]'});
				itemURL=new ctp.ui.textarea({id:'url',width:'100%',rows:"2",validate: 'rules[required,length[1,1000]]'});
				itemDes=new ctp.ui.textarea({id:'description',width:'100%',rows:"2",validate: 'rules[length[1,500]]'});
				itemLvlRbox1=new ctp.ui.radio({id:'itemLvlRbox1',label:'<ctp:label key="itemmgmt.uselvl.label"/>:',value:"0",width:"100%"});//功能可使用级别
				itemLvlRbox2=new ctp.ui.radio({id:'itemLvlRbox2',label:'<ctp:label key="itemmgmt.usebranch.label"/>:',value:"1",width:"100%"});//仅本机构使用
				itemLvlRbox=new ctp.ui.radiogroup({id:'itemLvlRbox'});
				itemLvl=new ctp.ui.checkboxgroup({id:'itemLevel',items:[{id:'lvl0',label:'<ctp:label key="itemmgmt.rootbranch.label"/>',value:"1"}],validate: 'rules[required]',display:"cols",width:"100%"});//顶级机构
				itemBranch=new ctp.ui.textfield({id: 'itemBranchId',width:'100%',validate: 'rules[required]'});
				itemBranchBtn=new ctp.ui.button({id: 'itemBranchBtn',text:'<ctp:label key="itemmgmt.select.label"/>',onClick:itemBranchBtn_click});//选择
				urlBtn=new ctp.ui.button({id: 'urlBtn',text:"...",onClick:urlBtn_click});

				//栅格布局（上部）
                detailLayout=new ctp.ui.gridlayout({ 
                	id:"gl",                   
					cols: 2,
					align: 'center',
					colSpace: 30,
					defaults: {display: 'h',align: 'center',label:{width:'100px'},element:{type:'textfield'}},					
					items: [
					   [{label: {id:"lbl1",text: '<ctp:label key="itemmgmt.id.label"/><span style="color:#FF0000">*</span>:'},element: itemId},
					    {label: {id:"lbl2",text: '<ctp:label key="itemmgmt.name.label"/><span style="color:#FF0000">*</span>:'},element: itemName}
					   ],
					   [{label: {id:"lbl3",text: '<ctp:label key="itemmgmt.status.label"/><span style="color:#FF0000">*</span>:'},element: itemStatus},
					    {label: {id:"lbl4",text: '<ctp:label key="itemmgmt.text.label"/><span style="color:#FF0000">*</span>:'},element: itemLabel}
					   ],
					   [{colspan: 2,label: {id:"lbl5",text: '<ctp:label key="itemmgmt.type.label"/><span style="color:#FF0000">*</span>:'},element: itemType}]
					]                          
                        
                });

                var detailLayout1=new ctp.ui.gridlayout({
                	id:"gl1",
					cols: 8,
					align: 'center',
					colSpace: 20,
					defaults: {display: 'h',align: 'center',label:{width:'100px'},element:{type:'textfield'}},					
					items: [
					   [{colspan: 6,label: {id:"lbl6",text: '<ctp:label key="itemmgmt.url.label"/><span style="color:#FF0000">*</span>:'},element: itemURL },
					    {colspan: 2,element: urlBtn,align:"left"}],//指向地址
					   [{colspan: 7,label: {id:"lbl7",text: '<ctp:label key="itemmgmt.description.label"/>:'},element: itemDes}],//功能描述
					   [{colspan: 2,element: itemLvlRbox1,align:"left"},//可使用级别
						{colspan: 5,element: itemLvl,align:"left"}//顶级机构...
					   ],
					   [
						{colspan: 2,element: itemLvlRbox2,align:"left"},//仅本机构使用
						{colspan: 4,element: itemBranch,align:"left"},//机构代码文本框
						{colspan: 2,element: itemBranchBtn,align:"left"}//机构选择列表按钮
					   ]					   
					]
                });

                itemmgmtForm=new ctp.form({
                    	id:"itemForm",
                    	postType:'ajax',
                    	width:"98%",	
                    	validator:itemmgmtValidator,		        
    			        ajaxPostParam:{	                                    
                           success: function(data) {
			                  var _message;  
							  if(flag=="new"){ 
								_message='<ctp:label key="newinbutton"/>';//新增
							  }else if(flag=="mod") {
								_message='<ctp:label key="modbutton"/>';//修改
							  }                                                                          
							  if(data.retCode=="0"){//提交成功                                                
                                  ctpMSB.succeed({title:'<ctp:label key="itemmgmt.result.notice"/>',message:_message+'<ctp:label key="itemmgmt.add.success"/>'});//功能节点成功！
                                  var _page=itemmgmtGrid.footer.getCurPage();
								  itemmgmtGrid.onLoad(function(){
								  	itemmgmtGrid.gotoPage(_page);
								  });
							      itemmgmtGrid.loadData(itemListUrl);  
							      itemmgmtToolbar.setDisable("_toolbar_button_modify",true);      
							      itemmgmtToolbar.setDisable("_toolbar_button_del",true); 
							      itemmgmtForm.setDisableAll(true);
                              }else{
                            	  var msgErr='<ctp:label key="errorCode"/>:'+data.errorCode+',<ctp:label key="errorMsg"/>:'+data.errorMsg;              
                                  ctpMSB.error({title:'<ctp:label key="itemmgmt.result.notice"/>',message:_message+'<ctp:label key="itemmgmt.add.fail"/>'+msgErr});//功能节点失败！
                              }
                              
                              }} ,
                        items: [detailLayout,detailLayout1],
                        buttons: [{
                            id: '_branch_new_form_addButton',
                            text: '<ctp:label key="itemmgmt.btn.submit.label"/>',//提交
                            icon:'apply',
                            onClick :itemmgmtFormSubmit
                        }, {
                            id: '_branch_new_form_resetButton',
                            text: '<ctp:label key="itemmgmt.btn.reset.label"/>',//重置
                            icon:'reload',
                            onClick :setValue
                        }]
                    });

                itemmgmtPanel=new ctp.ui.panel({
					width:"auto",
					height:"100%",
					title:'<ctp:label key="itemmgmt.detail.title.label"/>',//功能详情
					items:[itemmgmtForm]
				});

              	//创建上下型布局
                borderlayout = new ctp.ui.borderlayout({
                    type: "2E",
                    north__resizable: true,
                    north__size: 0.455,
                    north__items:[itemmgmtGrid],
                    center__items:[itemmgmtPanel],
                    renderTo:'body'
                });      
            }
            
        </script>

    </head>
    <body onload="initUI();inited()">
        <ctp:form name="itemForm" method="post" action="itemmgmt.flowc" flowActionName="">	
			    <input type="hidden" name="validCheck">
		</ctp:form>
    </body>
</html>
